#ifndef CAMERA_H
#define CAMERA_H

#include <QImage>
#include <QTimer>

namespace cv {
class VideoCapture;
class Mat;
}

class camera:public QObject
{
    Q_OBJECT
public:
    explicit camera(QObject *parent = nullptr);
    ~camera();
    void opencamera();
signals:
    /* 声明信号，用于传递有图片信号时显示图像 */
    void readyImage(const QImage&);

    void CarIDReady(QString);
    void FaceReady(QString);
public slots:
    void closecamera();
    /* 拍照 */
    void GetLicensePlate();

    bool cameraProcess(bool);

    /* 保存车牌到本地 */
    void SaveImage(QString typeflag,int Count);

private slots:
    /* 定时器时间到处理函数，发送图像数据信号 */
    void timerTimeOut();


private:
    /* 声明OpenCV的cv命名空间下的VideoCapture对象 */
    cv::VideoCapture * capture;
    /* 图像转换处理函数 */
    QImage matToQImage(const cv::Mat&img);

    /* 保存图片 */
    QImage SaveImg;
    /* 定时器，定时处理获取图像 */
    QTimer * timer;

};

#endif // CAMERA_H
